using System.Collections.Generic;

namespace LaunchMeNot.Core
{
    /// <summary>
    /// Stores startup entries.
    /// </summary>
    public interface IEntryStore
    {
        /// <summary>
        /// Adds a new startup entry.
        /// </summary>
        /// <param name="entry">The entry.</param>
        void AddStartupEntry(IStartupEntry entry);

        /// <summary>
        /// Adds multiple new startup entries.
        /// </summary>
        /// <param name="entries">The entries.</param>
        void AddStartupEntries(IEnumerable<IStartupEntry> entries);

        /// <summary>
        /// Edits a startup entry.
        /// </summary>
        /// <param name="entry">The entry.</param>
        void EditStartupEntry(IStartupEntry entry);

        /// <summary>
        /// Deletes a startup entry.
        /// </summary>
        /// <param name="entry">The entry.</param>
        void DeleteStartupEntry(IStartupEntry entry);

        /// <summary>
        /// Deletes multiple startup entries.
        /// </summary>
        /// <param name="entries">The entries.</param>
        void DeleteStartupEntries(IEnumerable<IStartupEntry> entries);

        /// <summary>
        /// Gets a list of all startup entries managed by LaunchMeNot.
        /// </summary>
        /// <returns>All startup entries managed by LaunchMeNot.</returns>
        IList<IStartupEntry> GetStartupEntries();
    }
}